From dc1612b86568b58b88d9a25dc19871fc2b2b42f3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timm=20B=C3=A4der?= Date: Sat, 24 Feb 2018 08:40:41 +0100 Subject: [PATCH] contentsformat: Avoid a GPtrArray We know how many items this array will have in advance, so just malloc enough. --- gdk/gdkcontentformats.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/gdk/gdkcontentformats.c b/gdk/gdkcontentformats.c index cd3293f0a3..95a8a608ae 100644 --- a/gdk/gdkcontentformats.c +++ b/gdk/gdkcontentformats.c @@ -147,18 +147,20 @@ GdkContentFormats * gdk_content_formats_new (const char **mime_types, guint n_mime_types) { - GPtrArray *array; guint i; + const char **mime_types_copy; if (n_mime_types == 0) return gdk_content_formats_new_take (NULL, 0, NULL, 0); - array = g_ptr_array_new (); + mime_types_copy = g_new (const char *, n_mime_types + 1); + for (i = 0; i < n_mime_types; i++) - g_ptr_array_add (array, (gpointer) g_intern_string (mime_types[i])); - g_ptr_array_add (array, NULL); + mime_types_copy[i] = g_intern_string (mime_types[i]); + + mime_types_copy[n_mime_types] = NULL; - return gdk_content_formats_new_take (NULL, 0, (const char **) g_ptr_array_free (array, FALSE), n_mime_types); + return gdk_content_formats_new_take (NULL, 0, mime_types_copy, n_mime_types); } /** -- 2.30.2